<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <p v-mycolor="color"> {{num}} </p>
        <button @click="num++">add</button>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <script>
        // 创建全局指令
        // - 需要注意的是，指令名称不能设置为大写，否则无法识别
        Vue.directive('mycolor', {
            // - 调用时期： 执行方法
            // - el：指令所绑定的DOM元素 binding：指令绑定对象（获取绑定值等一系列数据）
            // dom元素绑定后调用
            inserted: (el, binding, vnode) => {
                el.style = 'color:' + binding.value
            },
            // dom元素更新后调用
            update: (el, binding, vnode) => {
                el.style = 'color: green'
            }
        });
        new Vue({
            el: "#app",   
            data: {
                num: 99,
                color: "red"
            }
        })
    </script>
</body>
</html>